The present invention generally relates to effecting CPU boot-up. More specifically, the present invention relates to a method and system for booting up a CPU which has its boot memory that is either blank (e.g., not yet programmed) or corrupted using a bootstrap program.
In some conventional computer systems, boot code for starting up a CPU is typically preprogrammed into a nonvolatile storage device, such as, a ROM or FLASH memory. The ROM or the FLASH memory is then soldered onto a printed circuit board that is coupled to the CPU. Using the ROM or the FLASH memory to store boot code in this manner is quite inefficient and not cost effective for a number of reasons. For example, when the boot code is stored in the FLASH memory, the soldering process may corrupt the contents of the FLASH memory. The contents of the FLASH memory may also get corrupted by a disturbance in the system during the update process when the FLASH memory is updated. Consequently, the corrupted FLASH memory has to be unsoldered from the board, reprogrammed accordingly, and then resoldered back onto the board. The unsoldering and soldering of the modern, high-pin-density chips is a precise, delicate and time consuming process. This process requires special tools generally not available at a user site and is not entirely risk free. Physical damage almost always happens to the ROM or the FLASH memory during the unsoldering and soldering process, thereby resulting in the need for replacement. Similarly, physical damage can also be done to the printed circuit board. As a result, the cost associated with the unsoldering and soldering process can be very high.
Alternatively, the ROM or the FLASH memory may be secured to the board using sockets. These sockets are typically very expensive and unreliable. Therefore, frequent physical removal of the ROM or the FLASH memory from the board similarly causes problems.
If the boot code stored in the ROM or the FLASH memory is corrupted, then the CPU will not be able to initiate a boot-up operation. Hence, it would be desirable to provide a system for providing and managing a first CPU boot-up operation in a more efficient manner.